home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 2.iso / STUTTGART / GRAPHICS / RAYTRACING / POVRAY3 / POV301 / povray3 / povscn / level3 / pov / tomb < prev    next >
Text File  |  1995-11-14  |  13KB  |  642 lines

  1. // Persistence Of Vision raytracer version 3.0 sample file.
  2. // File by Drew Wells
  3. // A haunted tomb on a hill, gravestones, rusty fence, pumpkin patch.
  4.  
  5. #version 3.0
  6. global_settings { assumed_gamma 2.2 }
  7.  
  8. #include "shapes.inc"
  9. #include "colors.inc"
  10. #include "textures.inc"
  11. #include "stones.inc"
  12.  
  13. /* Camera */
  14. camera {
  15.    direction <0.0, 0.0,  1.5>
  16.    up  <0.0,  1.0,  0.0>
  17.    right <-4/3, 0.0, 0.0>
  18.    translate < -15.0,  5.0,  120.0>
  19.    look_at <10.0, 12.0, 55.0>
  20. }
  21. #declare TombTex = texture { T_Stone8 finish { ambient .1 } scale 0.5 }
  22. #declare HeadTex = texture { T_Stone3  }
  23. #declare ColTex  = texture { T_Stone13 finish { phong .3 } scale .2 }
  24. #declare Rust2 = texture { T_Stone1 }
  25.  
  26.  
  27. #declare Yellow_Clouds = pigment {
  28.    bozo
  29.    turbulence 0.6
  30.    colour_map {
  31.       [0.0 0.3   colour red 0.9 green 0.5  blue 0.3
  32.                  colour red 0.6 green 0.4  blue 0.0]
  33.       [0.3 0.6   colour red 0.6 green 0.4  blue 0.0
  34.                  colour red 0.4 green 0.4  blue 0.0 filter 1.0]  
  35.       [0.6 0.8   colour red 0.4 green 0.4  blue 0.0 filter 1.0
  36.                  colour Clear]  
  37.       [0.8 1.001 colour Clear
  38.                  colour Clear]
  39.    }
  40. }
  41.  
  42. #declare Sunset_Sky = pigment {
  43.    gradient y
  44.    
  45.    colour_map {
  46.       [0.0 0.4   colour red 0.8 green 0.0 blue 0.0
  47.                  colour red 0.4 green 0.0 blue 0.4]
  48.       [0.4 0.6   colour red 0.4 green 0.0 blue 0.4
  49.                  colour red 0.0 green 0.0 blue 0.2]
  50.       [0.6 1.001 colour red 0.0 green 0.0 blue 0.2
  51.                  colour red 0.0 green 0.0 blue 0.1]
  52.    }
  53.    scale 700.0
  54. }
  55.  
  56.  
  57. /*************************************************/
  58. /* Define objects for use in scene               */
  59. /*************************************************/
  60.  
  61. #declare Cross = union {
  62.    /* Tried to make celtic cross, but vga resolution is too coarse */
  63. /*
  64.       intersection {
  65.          object {
  66.             Cylinder_Z
  67.             scale 0.4
  68.             translate <0.0, 0.45, 0.0>
  69.          }
  70.          plane { -z, 0.02 }
  71.          plane { z, 0.02 }
  72.       }
  73.  */
  74.  
  75.    /*vertical part*/
  76.    intersection {
  77.       /*top & bottom*/
  78.       plane { y, 1.0 }
  79.       plane { -y, 2.0 }
  80.       /*front & back*/
  81.       plane { z, 0.12 }
  82.       plane { -z, 0.12 }
  83.       /*left & right*/
  84.       plane { x, 0.15 }
  85.       plane { -x, 0.15 }
  86.    }
  87.  
  88.    /*horizontal part*/
  89.    intersection {
  90.       /*top & bottom*/
  91.       plane { y, 0.6 }
  92.       plane { -y, -0.3 }
  93.       /*front & back*/
  94.       plane { z, 0.12 }
  95.       plane { -z, 0.12 }
  96.       /*left & right walls*/
  97.       plane { x, 0.7 }
  98.       plane { -x, 0.7 }
  99.    }
  100.  
  101.    bounded_by { box { <-.8, -2.1, -.2>,  <.8, 1.1, .8> } }
  102.  
  103.    texture {
  104.       HeadTex
  105.       scale 0.1
  106.       finish {
  107.          ambient 0.1
  108.          diffuse 0.7   
  109.       }
  110.    }
  111. }
  112.  
  113. #declare Headstone = union {
  114.    intersection {      
  115.       object { Cylinder_Z }
  116.       plane { -z, 0.1 }
  117.       plane { z, 0.1 }
  118.    }            
  119.  
  120.    intersection {
  121.       /*top & bottom*/ 
  122.       plane { y, 0.0 }
  123.       plane { -y, 2.0 }
  124.       /*front & back*/
  125.       plane { z, 0.1 }
  126.       plane { -z, 0.1 }
  127.       /*left & right */
  128.       plane { x, 1.0 }
  129.       plane { -x, 1.0 }
  130.    }
  131.  
  132.    texture { 
  133.       HeadTex
  134.       scale <0.1, 0.2, 0.1>
  135.  
  136.       finish {
  137.          ambient 0.1
  138.          diffuse 0.7   
  139.       }
  140.    }
  141. }
  142.  
  143.  
  144. #declare Pole = object { Cylinder_Y scale <0.1, 1.0, 0.1> }
  145.  
  146.  
  147. #declare Xpole = object { Cylinder_X scale <0.1, 0.1, 0.1> }
  148.  
  149. /* Rusty iron gate & fence - object should have been composite to avoid the */
  150. /*                           "carved from one piece" look. */
  151. #declare Gate = union {
  152.    intersection {
  153.       object { Xpole }
  154.       plane { x, 8.0 }
  155.       plane { -x, 2.0 }
  156.       translate 6.5*y
  157.    }
  158.    intersection {
  159.       object { Xpole }
  160.       plane { x, 8.0 }
  161.       plane { -x, 2.0 }
  162.       translate 1.9*y
  163.    }
  164.    intersection {
  165.       object { Pole }
  166.       plane { y, 7.5 }
  167.       plane { -y, 0.0 }
  168.       translate 1.0*x
  169.    }
  170.    sphere { <1.0, 7.5, 0.0>, 0.3 }
  171.    intersection {
  172.       object { Pole }
  173.       plane { y, 7.75 }
  174.       plane { -y, 0.2 }
  175.       translate 2.5*x
  176.    }
  177.    sphere { <2.5, 7.75, 0.0>, 0.3 }
  178.    intersection {
  179.       object { Pole }
  180.       plane { y, 8.0 }
  181.       plane { -y, 0.2 }
  182.       translate 4.0*x
  183.    }
  184.    sphere { <4.0, 8.0, 0.0>, 0.3 }
  185.    intersection {
  186.       object { Pole }
  187.       plane { y, 7.75 }
  188.       plane { -y, 0.2 }
  189.       translate 5.5*x
  190.    }
  191.    sphere { <5.5, 7.75, 0.0>, 0.3 }
  192.    intersection {
  193.       object { Pole }
  194.       plane { y, 7.5 }
  195.       plane { -y, 0.2 }
  196.       translate 7.0*x
  197.    }
  198.    sphere { <7.0, 7.5, 0.0>, 0.3 }
  199.  
  200.    bounded_by { box { <0.0, 0.0, -1.0>, <8.0, 9.0, 1.0> } }
  201.  
  202.    texture { 
  203.       Rust2
  204.       finish {
  205.          ambient 0.2
  206.          diffuse 0.9   
  207.       }
  208.    }    
  209. }
  210.  
  211. /* a rectangular pad to serve as a footing for the column */
  212. #declare BasePad = box {
  213.    <-1.2, -0.25, -1.2>, <1.2, 0.25, 1.2>
  214.    pigment { colour red 0.6 green 0.6 blue 0.4 }
  215. }
  216.  
  217. #declare ColTop = union {
  218.    box { <-1.5, -.1, -1.5>, <1.5, .2, 1.5> }
  219.    box { <-1.25, .2, -1.25> <1.25, .4, 1.25> }
  220.    box { <-1, .4, -1> <1, .6, 1> }
  221.  
  222.    pigment { color red .6 green .6 blue .4 }
  223. }
  224.  
  225. #declare Beam = object { Cylinder_Y }
  226.  
  227. #declare Beam2 = object {
  228.    Cylinder_Y
  229.    inverse
  230.    scale  <.3, 1, .3>
  231.    translate 1.4*x
  232. }
  233.  
  234. #declare Beam3 = intersection {
  235.    object { Beam  scale <1.2, 1, 1.2> }
  236.    object { Beam2 }
  237.    object { Beam2 rotate  -45*y }
  238.    object { Beam2 rotate  -90*y }
  239.    object { Beam2 rotate -135*y }
  240.    object { Beam2 rotate  180*y }
  241.    object { Beam2 rotate   45*y }
  242.    object { Beam2 rotate   90*y }
  243.    object { Beam2 rotate  135*y }
  244.    plane { y, 8 }
  245.    plane { -y, 0 }
  246.  
  247.    pigment { color red .8 green 0 blue .0 }
  248. }
  249.  
  250. #declare Column = union {
  251.    object { Beam3   texture { ColTex } }
  252.    //object { BasePad texture { ColTex finish {phong 0} } translate <0, 0, 0> }
  253.    object { ColTop texture { ColTex finish {phong 0} } translate <0, 8, 0> }
  254. }
  255.  
  256.  
  257. #declare Tomb = union {
  258.    difference {
  259.       box { <-10, -5, -7.5>, <10, 10, 7.5> } // bulk
  260.       box { <-3, -5, -7.0>, <3, 7, 7.6> } // door
  261.    }
  262.    /* Foundation */
  263.    box { <-11, -2, -10.5>, <11, -1, 10.5> }
  264.    box { <-12, -3, -11>,   <12, -2, 11> }
  265.    box { <-13, -4, -12>,   <13, -3, 12> }
  266.    box { <-14, -5, -13>,   <14, -4, 13> }
  267.  
  268.    bounded_by { box { <-14.1, -5.1, -13.1>, <14.1, 10.1, 18.6> } }
  269. }
  270.  
  271. #declare InnerBeams = union {
  272.    intersection {
  273.       object { Beam }
  274.       plane { y, 8.0 }
  275.       plane { -y, 2.0 }
  276.       translate < 5.0, 0.0, 7.5>
  277.    }
  278.    intersection {
  279.       object { Beam }
  280.       plane { y, 8.0 }
  281.       plane { -y, 2.0 }
  282.       translate < -5.0, 0.0, 7.5>
  283.    }
  284.  
  285.    pigment { Blue }
  286. }
  287.  
  288.  
  289. #declare Pointy = object {
  290.    /*pointy part*/
  291.    intersection {
  292.       plane { -y, 1 }
  293.       plane { -z, 1 }
  294.       plane { z, 1 rotate  27*y  rotate 40*x }
  295.       plane { z, 1 rotate -27*y  rotate 40*x }
  296.       plane { +x, 0 rotate   70*z }
  297.       plane { -x, 0 rotate  -70*z }
  298.       scale <3, 4, 1>
  299.       translate < 0, 12, 8.5>
  300.    }
  301.  
  302.    pigment { Blue }
  303. }
  304.  
  305.  
  306. #declare CornerBeams = union {
  307.    intersection {
  308.       object { Beam scale <1.5, 1.0, 1.5>}
  309.       plane { y, 10.0 }
  310.       plane { -y, 2.0 }
  311.       translate < 10.0, 0.0, 7.5>
  312.    }
  313.    intersection {      
  314.       object { Beam scale <1.5, 1.0, 1.5> }
  315.       plane { y, 10.0 }
  316.       plane { -y, 2.0 }
  317.       translate <-10.0, 0.0, 7.5>
  318.    }
  319.    sphere { <-10.0, 10.0, 7.5>, 1.5 }
  320.    sphere { < 10.0, 10.0, 7.5>, 1.5 }
  321.  
  322.    pigment { Blue }
  323. }
  324.  
  325. /* Ghost in tomb doorway */
  326. #declare Figure = intersection {
  327.    object { Beam scale <2.3, 1.0, 2.3> }
  328.    plane { y, 8.0 }
  329.    plane { -y, 2.0 }
  330.    translate 4.3*z
  331.  
  332.    texture {
  333.       pigment {
  334.          granite
  335.          /* Use any ghost image you like for the tomb doorway or comment */
  336.          /* out the Figure in TombAll */
  337.          /*imagemap { gif "ghost.gif" once interpolate 2.0 } */
  338.          scale < 6.5, 8.0, 6.5 >
  339.          translate < -1.0, 7.5, 4.3 >
  340.          quick_color Black
  341.       }
  342.       finish {
  343.          ambient 0.10
  344.          diffuse 0.3
  345.       }
  346.    }
  347. }
  348.  
  349. /* TombAll is the completed tomb */
  350. #declare TombAll = union {
  351.    object { Tomb texture { TombTex } }
  352.    object { InnerBeams texture { T_Stone21 } }
  353.    object { Pointy texture { T_Stone4 } }
  354.    object { CornerBeams texture { T_Stone18 scale <.5, .5, .5> } }
  355. }
  356.  
  357. /* Pumpkin parts */
  358. #declare Stem = intersection {
  359.    object { Pole }
  360.    plane { y, 0.04 rotate <0.0, -10.0, -10.0> }
  361.    plane { -y, 1.0 }
  362.    translate <0.0, 0.3, 0.0>
  363.  
  364.    texture {
  365.       pigment { color red 0.04 green 0.33 blue 0.05 }
  366.       normal {
  367.          bumps 0.5
  368.          scale 0.2
  369.       }
  370.       finish {
  371.          ambient 0.1
  372.          diffuse 0.9   
  373.       }
  374.    }
  375. }
  376.  
  377. #declare Slice = sphere {
  378.    <0, 0, 0>, 1
  379.    translate <0.0, 0.0, 0.5>
  380.    scale <0.28, 0.30, 0.40>
  381. }
  382.  
  383. #declare Pumpkin = union {
  384.    object { Slice }
  385.    object { Slice  rotate  -20.0*y }
  386.    object { Slice  rotate  -40.0*y }
  387.    object { Slice  rotate  -60.0*y }
  388.    object { Slice  rotate  -80.0*y }
  389.    object { Slice  rotate -100.0*y }
  390.    object { Slice  rotate -120.0*y }
  391.    object { Slice  rotate -140.0*y }
  392.    object { Slice  rotate -160.0*y }
  393.    object { Slice  rotate -180.0*y }
  394.    object { Slice  rotate -200.0*y }
  395.    object { Slice  rotate -220.0*y }
  396.    object { Slice  rotate -240.0*y }
  397.    object { Slice  rotate -260.0*y }
  398.    object { Slice  rotate -280.0*y }
  399.    object { Slice  rotate -300.0*y }
  400.    object { Slice  rotate -320.0*y }
  401.    object { Slice  rotate -340.0*y }
  402.  
  403.    bounded_by { sphere { <0, 0, 0>, 1.5 } }
  404.  
  405.    texture {
  406.       pigment { color red 0.5 green 0.22 blue 0.1 }
  407.       normal {
  408.          bumps 0.3
  409.          scale 0.1
  410.       }
  411.       finish {
  412.          ambient 0.1
  413.          diffuse 0.9
  414.          phong 0.75
  415.          phong_size 30.0
  416.       }
  417.    }
  418. }
  419.  
  420.  
  421. /*******************************************/
  422. /* Scene description     */
  423. /*******************************************/
  424.  
  425. object {
  426.    Cross
  427.    scale <1.7, 2.0, 1.0>
  428.    rotate -15.0*x
  429.    translate <-16.0, 7.7, 61.5>    
  430. }
  431.  
  432. object {
  433.    Headstone
  434.    scale <1.0, 1.0, 1.0>
  435.    rotate 15.0*x
  436.    translate <-14.0, 4.0, 76.0>
  437. }
  438.  
  439. object {
  440.    Headstone
  441.    scale <1.0, 1.0, 1.0>
  442.    translate <12.0, 4.0, 74.0>
  443. }
  444.  
  445. object {
  446.    Headstone
  447.    scale <1.0, 1.0, 1.0>
  448.    rotate -10.0*x
  449.    translate <18.0, 8.0, 70.0>
  450. }
  451.  
  452. object {
  453.    Cross
  454.    scale <1.5, 2.0, 1.0>
  455.    rotate -15.0*x
  456.    translate <17.0, 10.0, 60.0>
  457. }
  458.  
  459. object {
  460.    Cross
  461.    scale <1.5, 2.0, 1.0>
  462.    rotate -15.0*x
  463.    translate <26.0, 10.0, 70.0>
  464. }
  465.  
  466. object {
  467.    Cross
  468.    scale <1.5, 2.0, 1.0>
  469.    rotate <-15.0, 0.0, -10.0>
  470.    translate <31.0, 10.0, 78.0>
  471. }
  472.  
  473.  
  474. /* Little Pumpkin Patch */
  475. object {
  476.    Pumpkin
  477.    scale <1.5, 2.0, 1.5>
  478.    translate <5.0, 1.55, 95.0>
  479. }
  480.  
  481. object {
  482.    Stem
  483.    scale <1.5, 2.5, 1.5>
  484.    translate < 5.0, 1.55, 95.0>
  485. }
  486.  
  487. object {
  488.    Pumpkin
  489.    scale <1.5, 2.5, 1.5>
  490.    translate < 11.0, 1.6, 90.0>
  491. }
  492.  
  493. object {
  494.    Stem
  495.    scale <1.5, 2.5, 1.5>
  496.    translate < 11.0, 1.6, 90.0>
  497. }
  498.  
  499.  
  500. /* Ghastly Tomb!*/
  501. object {
  502.    TombAll
  503.    rotate <7.0, 15.0, 0.0>
  504.    translate <0.0, 16.0, 38.0>
  505. }
  506.  
  507. /*left entry gate*/
  508. object {
  509.    Gate
  510.    translate <-9.0, 0.0, 88.0>
  511. }
  512.  
  513. /*right entry gate*/
  514. object {
  515.    Gate
  516.    rotate <-10.0, -160.0, 0.0>
  517.    translate <7.0, 0.0, 87.5>
  518. }
  519.  
  520. /*Use gate object to make left & right fence*/
  521. object {
  522.    Gate
  523.    translate <-19.0, 0.0, 88.0>
  524. }
  525.  
  526. object {
  527.    Gate
  528.    translate <-31.0, 0.0, 88.0>
  529. }
  530.  
  531. object {
  532.    Gate
  533.    translate <9.0, 0.0, 88.0>
  534. }
  535.  
  536. object {
  537.    Gate
  538.    translate <19.0, 0.0, 88.0>
  539. }
  540.  
  541. /* Columns to hold the fence and gates up */
  542. object { Column translate <-20.0, 0.0, 88.0> }
  543. object { Column translate <-10.0, 0.0, 88.0> }
  544. object { Column translate < 8.0, 0.0, 88.0> }
  545. object { Column translate < 18.0, 0.0, 88.0> }
  546.  
  547. /*hill under tomb*/
  548. object {
  549.    Paraboloid_Y
  550.    scale <40.0, 10.0, 77.0>
  551.    rotate <0.0, 0.0, 180.0>
  552.    translate <0.0, 21.0, -28.0>
  553.  
  554.    texture {
  555.       pigment { color red 0.5 green 0.6 blue 0.2 }
  556.       normal {
  557.          bumps 0.8
  558.          scale 5.0
  559.       }
  560.       finish {
  561.          ambient 0.1
  562.          diffuse 0.7    
  563.       }
  564.    }                                         
  565. }
  566.  
  567. /*hill to right of tomb*/
  568. object {
  569.    Paraboloid_Y
  570.    scale <30.0, 10.0, 40.0>
  571.    rotate 180.0*z
  572.    translate <40.0, 14.0, 50.0>
  573.  
  574.    texture {
  575.       pigment { color red 0.6 green 0.6 blue 0.1 }
  576.       normal {
  577.          bumps 0.8
  578.          scale < 7.0, 5.0, 5.0>
  579.       }
  580.       finish {
  581.          ambient 0.1
  582.          diffuse 0.7
  583.       }
  584.    }
  585. }
  586.  
  587. /* Ground */
  588. plane {
  589.    y, 1.0
  590.  
  591.    texture {
  592.       pigment { color red 0.6 green 0.6 blue 0.1 }
  593.       normal {
  594.          bumps 0.7
  595.          scale < 1.0, 1.0, 1.0>
  596.       }
  597.       finish {
  598.          ambient 0.1
  599.          diffuse 0.7
  600.       }
  601.    }
  602. }
  603.  
  604. /*The Sun*/
  605. light_source { <150.0, 30.0, 1200.0> color red 1 green .8 blue .65 }
  606.  
  607. /* Sky - gradient sunset*/
  608. sphere {
  609.    <0.0, 0.0, 0.0>, 2000.0
  610.    inverse
  611.  
  612.    texture {
  613.       pigment {
  614.          Sunset_Sky
  615.          translate 200.0*y
  616.          scale 1.2
  617.          quick_color Green
  618.       }
  619.       finish {
  620.          ambient 0.6
  621.          diffuse 0.0
  622.       }
  623.    }
  624. }
  625.  
  626. /* Clouds - uses a sky texture with the sky portion defined as transparent */
  627. /*          so the gradient behind it is visible  */
  628. sphere {
  629.    <0.0, 0.0, 0.0>, 1997.0
  630.    texture {
  631.       pigment {
  632.          Yellow_Clouds
  633.          scale <1000.0 30.0 100.0>
  634.          quick_color Green
  635.       }
  636.       finish {
  637.          ambient 0.7
  638.          diffuse 0.0
  639.       }
  640.    }
  641. }
  642.